# knitr::spin("acumula22_hist.R", knit = FALSE) # Crea .Rmd
# knitr::purl("acumula22_hist.Rmd", documentation = 2) # Crea .R spin

# PENDIENTE:
#   Generar un fichero de cambios:
#         Bucle last:2 / Empezar solo con last
#         AƱadir ficheros 2:(last - 1) a files[last] y calcular diferencia/error y lag/horizonte
#   AnÔlisis descriptivo: dispersión/boxplot error|lag


library(dplyr, warn.conflicts = FALSE)
library(tidyr)

files <- dir(pattern = paste0('^acumula22_\\d{2}_\\d{2}_\\d{2}\\.RData'))
fechas.txt <- substr(files, 11, 18)
fechas <- as.Date(fechas.txt, format = "%y_%m_%d") 
last <- length(files)
semanas <- 6
fecha.ini <- fechas[last] - 7*semanas - 1
colors <- gray((last - seq_along(files))/last)


# Cargar datos
datos <- lapply(files, function(f) {
  load(f)
  return(acumula22)
})
names(datos) <- fechas

# Obtener niveles
load("../ccaas.RData")
iso <- names(datos[[1]]) # names(ccaas) 
respuestas <- c("confirmados", "hospitalizados", "uci", "fallecidos") # names(datos[[1]][[1]])

Se genera un grÔfico con toda la serie hasta 2021-02-15 y otro de las últimas 6 semanas (desde 2021-01-04).

La legenda (color de las lĆ­neas) indica la fecha en la que se reportaron los datos.

for (r in respuestas) {  # r <- "confirmados"
  cat("\n\n# ", r, "\n\n") 
  
  for (ca in iso) { # ca <- "ES"
    cat("\n\n## ",  ccaas[ca], "\n\n")
    
    old.par <- par(mfrow = c(1, 2))

    plot(observado ~ fecha, data = datos[[last]][[ca]][[r]], 
         type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
         col = colors[last])
    lapply(1:(last-1), function(i) 
         lines(observado ~ fecha, data = datos[[i]][[ca]][[r]], 
               col = colors[i]))     
    legend("topleft", names(datos), lty = 1, col = colors)
    

    plot(observado ~ fecha, data = datos[[last]][[ca]][[r]], 
         type = "l", main = paste(ccaas[ca], r), xlab = "Fecha", ylab = r,
         col = colors[last], subset = fecha > fecha.ini - 1)
    lapply(1:(last-1), function(i) 
         lines(observado ~ fecha, data = datos[[i]][[ca]][[r]], 
               col = colors[i], subset = fecha > fecha.ini - 1))
    # legend("topleft", names(datos), lty = 1, col = colors)
    
    par(old.par)

  } # for (ca in iso)
} # for (r in respuestas)   

confirmados

EspaƱa

AndalucĆ­a

Aragón

Asturias

Cantabria

Ceuta

Castilla y León

Castilla-La Mancha

Canarias

CataluƱa

Extremadura

Galicia

Islas Baleares

Murcia

Madrid

Melilla

PaĆ­s Vasco

La Rioja

Comunidad Valenciana

hospitalizados

EspaƱa

AndalucĆ­a

Aragón

Asturias

Cantabria

Ceuta

Castilla y León

Castilla-La Mancha

Canarias

CataluƱa

Extremadura

Galicia

Islas Baleares

Murcia

Madrid

Melilla

PaĆ­s Vasco

La Rioja

Comunidad Valenciana

uci

EspaƱa

AndalucĆ­a

Aragón

Asturias

Cantabria

Ceuta

Castilla y León

Castilla-La Mancha

Canarias

CataluƱa

Extremadura

Galicia

Islas Baleares

Murcia

Madrid

Melilla

PaĆ­s Vasco

La Rioja

Comunidad Valenciana

fallecidos

EspaƱa

AndalucĆ­a

Aragón

Asturias

Cantabria

Ceuta

Castilla y León

Castilla-La Mancha

Canarias

CataluƱa

Extremadura

Galicia

Islas Baleares

Murcia

Madrid

Melilla

PaĆ­s Vasco

La Rioja

Comunidad Valenciana